home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / libs / sphigs / sph_quik.lha / quickdraw / src / text_calls.c < prev   
Encoding:
C/C++ Source or Header  |  1989-12-09  |  2.3 KB  |  133 lines

  1. /*--------------------------------- calls.c ----------------------------------*/
  2. /* Copyright 1989 Brown University -- Jeffrey Vogel                           */
  3. /*----------------------------------------------------------------------------*/
  4.  
  5. /*--------------------------------- Includes ---------------------------------*/
  6. /*----------------------------------------------------------------------------*/
  7.  
  8. #include "qd_local.h"
  9.  
  10.  
  11. /*-------------------------------- DrawString --------------------------------*/
  12. /*----------------------------------------------------------------------------*/
  13.  
  14. void
  15. DrawString(string, x, y)
  16. char   *string;
  17. int    x, y;
  18. {
  19.    if (!QDrunning) {
  20.       QDerror("ERROR DrawText: QuickDraw not initialized.");
  21.       return;
  22.    }
  23.  
  24.    XDrawString(QDdisplay, QDwindow, QDgc, x, y, string, strlen(string));
  25.    XFlush(QDdisplay);
  26. }
  27.  
  28.  
  29. /*----------------------------- QueryStringSize ------------------------------*/
  30. /*----------------------------------------------------------------------------*/
  31.  
  32. void
  33. QueryStringSize(string, width, height)
  34. char   *string;
  35. int    *width, *height;
  36. {
  37.    register int i;
  38.  
  39.    /*** error check ***/
  40.    if (!QDrunning) {
  41.       QDerror("ERROR QueryStringSize: QuickDraw not initialized.");
  42.       return;
  43.    }
  44.  
  45.    /*** find the font ***/
  46.    i = 0;
  47.    while (QDfonts[i] != QDgcValues.font)
  48.       i++;
  49.  
  50.    *height = QDfontInfo[i]->ascent;
  51.    *width  = XTextWidth(QDfontInfo[i], string, strlen(string));
  52. }
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61.  
  62.  
  63.  
  64.  
  65.  
  66.  
  67. /*------------------------------- For Pascal  --------------------------------*/
  68. /*----------------------------------------------------------------------------*/
  69.  
  70. #define TEXT__STRING_LENGTH 128
  71.  
  72. typedef struct {
  73.    char   a[TEXT__STRING_LENGTH];
  74. } Stringarray;
  75.  
  76.  
  77. static
  78. void
  79. ConvertTheString(s)
  80. char  *s;
  81. {
  82.    register int i;
  83.  
  84.    s[TEXT__STRING_LENGTH-1] = '\0';     
  85.  
  86.    for (i = TEXT__STRING_LENGTH - 2; i >= 0; i--) {
  87.       if (s[i] == ' ')
  88.          s[i] = '\0';
  89.       else if (s[i] != '\0')
  90.          return;
  91.    }
  92. }
  93.  
  94. void
  95. DrawPascalString(string, x, y)
  96. Stringarray string;
  97. int         x, y;
  98. {
  99.    ConvertTheString(string.a);
  100.    DrawString(string.a, x, y);
  101. }
  102.  
  103. void
  104. QueryPascalStringSize(string, width, height)
  105. Stringarray   string;
  106. int    *width, *height;
  107. {
  108.    ConvertTheString(string.a);
  109.    QueryStringSize(string.a, width, height);
  110. }
  111.  
  112.  
  113.  
  114.  
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.